/**
 * hashpath 路径处理工具
 * 用于处理和管理路由路径相关的辅助函数
 */
export const hashpath_helper = {
  /**
   * 获取节点的父级路由路径
   * @param {HTMLElement} node - 需要查找父级路径的DOM节点
   * @returns {string} 返回父级路由的hashpath，如果没有找到则返回空字符串
   */
  parent_hash: function (node) {
    let parent = node.closest("route,multiview");
    if (parent) {
      return parent.thin_hashpath;
    }
    return "";
  },

  /**
   * 连接多个路径片段
   * @param {...string} paths - 要连接的路径片段
   * @returns {string} 返回规范化后的完整路径
   * @example
   * join('path', 'to', 'file') // 返回 'path/to/file'
   * join('path/', '/to/', '/file') // 返回 'path/to/file'
   */
  join: function () {
    // 将所有参数转换为数组并过滤掉空值
    const paths = Array.from(arguments).filter((path) => path);
    // 用/连接所有路径片段,并确保不会出现多余的/
    return paths.join("/").replace(/\/+/g, "/");
  },
};
